package thread;

/**
 * @author 老安
 * @data 2022/6/23 21:09
 * sleep方法要求必须处理中断异常
 * 当一个线程调用sleep方法处于睡眠阻塞的过程中,此时该线程的interrupt()方法
 * 被调用时,会被立即中断睡眠阻塞,并抛出该异常
 */
public class SleepDemo2 {
    public static void main(String[] args) {
        Thread lin = new Thread(){
            @Override
            public void run() {
                System.out.println("林:刚美完容~睡一会吧~~");
                try {
                    Thread.sleep(500000000);
                    System.out.println("林:睡醒了!");
                } catch (InterruptedException e) {
                    System.out.println("林:干嘛呢!干嘛呢!都破了相了!");
                }

            }
        };
        Thread huang = new Thread(){
            @Override
            public void run() {
                System.out.println("黄:大锤80,小锤40,开始砸墙!");
                for (int i = 0; i < 5; i++) {
                    System.out.println("黄:80!");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("咣当!");
                System.out.println("黄:大哥!搞定!");
                lin.interrupt();//当huang线程执行到这里时,会让lin线程中断睡眠阻塞
            }
        };
        lin.start();
        huang.start();
    }
}
